// ~ Package Declaration

package com.wms.data.domain.service;

import java.util.List;
import java.util.Map;

import com.wms.data.pojo.PageModel;
import com.wms.data.pojo.SystemUser;

//~ Comments
//==================================================

/**
 * interface of PstsUser.
 * 
 * <table border="1" width="80%">
 * <tr>
 * <th>Version</th>
 * <th>Date</th>
 * <th>Role</th>
 * <th>Modified By</th>
 * <th>Details</th>
 * </tr>
 * <tr>
 * <td>%I%</td>
 * <td>2011/12/6</td>
 * <td>SD/PG</td>
 * <td>Key</td>
 * <td>Created By</td>
 * </tr>
 * </table>
 * <p/>
 * 
 * <pre>
 *	interface of PstsUser. 
 * </pre>
 *
 * @author Key
 * @version 1.0
 * @since 1.5
 * 
 * SVN:
 * <ol>
 * 	<li>$Id$</li>
 * 	<li>$Rev$</li>
 * </ol>
 *
 */
public interface SystemUserService extends AbstractWMSService<SystemUser> {

	// ~ Static Fields
	// ==================================================

	// ~ Methods
	// ==================================================
	
	public SystemUser updateLogin(String userName, String password, int unsuccessfulAttemptNum, String ipAddress);
	
	public List<SystemUser> findByPageModel(Map<String, String> parameter, PageModel pageModel);
	
	public SystemUser findUserByUserName(String userName);

	public void saveSystemUser(SystemUser systemUser);
	
	public void saveSystemUserAndRoleId(SystemUser systemUser, Integer roleId);
	
	public void updateBySystemUserAndRoleId(SystemUser systemUser, Integer roleId);

	public void deleteBySystemUser(SystemUser systemUser);
	
	public void deleteBySystemUserAndRoleId(SystemUser systemUser, Integer roleId);
	
	public void deleteById(String id);
}
